1. Technical Field
The present invention relates generally to digital signal transmission over a computer network and, in particular, to a method and system for streaming content over the Internet in a fault tolerant manner.
2. Description of the Related Art
Most Internet users do not have fast enough access to the Internet to download large multimedia files quickly. Streaming is a technique for delivering web-based video, audio and multimedia files so that these files can be processed as a steady and continuous stream at the requesting client, typically using a browser plug-in, such as Microsoft NetPlayer, Apple QuickTime, Real Networks RealSystem G2, or the like. Streaming video, for example, is an online video distribution mechanism that provides audio and video to Internet users, without the users having to wait while content completely downloads to their hard drives. Through caching, content is played as it is received, and buffering mechanisms ensure that content is played smoothly. Theoretically, streaming video plays to the end user, or viewer, as an immediate and ongoing broadcast.
From a network perspective, traditional approaches to streaming Internet content involve transmitting a streaming signal from a source to a device known as a splitter (or repeater, reflector or mirror), which, in turn, replicates the source signal into multiple signals. Each of the multiple signals is the same, and each is sent on to a different destination. By cascading splitters in a tree-like fashion, a single source stream can be replicated into thousands or more identical copies. In this manner, a large number of viewers on the Internet can receive the same streaming signal simultaneously.
A critical problem with existing streaming methods of this type is that they are not fault tolerant. FIG. 1 illustrates why this is the case. In this example, a source signal (A) is sent to a splitter (B), which then sends copies of the signal to ten splitters (C1, . . . , C10). Each of the second level splitters then sends a copy of the signal to five end customers (D1, . . . , D50). Thus, for example, splitter C1 sends a copy to end users D1-D5, splitter C2 sends a copy to end users D6-D10, and so forth. If communications at a given splitter fail, however, certain users are unable to receive the original signal. In the network of FIG. 1, this would be the case with respect to users D6-D10 if C2 fails. To overcome this problem, it is also known in the art to enable end users to detect they are no longer receiving the streaming signal and to enable such users to attempt to contact an alternative splitter (e.g., C3) in an effort to get another copy of the signal. Such approaches, however, can result in an interruption of the signal and are expensive to implement.
Thus, there remains a need in the art to provide improved streaming techniques that are fault tolerant. The present invention solves this important problem.